<template>
  <!--type
  [0：数据源节点的输入搜索下拉框， 1:文本输入框 ，2：数值输入框 ， 3：下拉单选框，
  4：文本域输入框， 5：表结构列表，  6：单选框，  7：多选框 8-10：文本编辑器-pgsql/r/python
  11:条件列表, 12:字段下拉选择框,  13:表结构列表（只读）, 14:输入列表展示, 15:复选框组
  16HIVE数据源输入搜索下拉 17HIVE表结构列表，18添加字段文本输入框 19修改输出字段名称
  20密码框 21通过remoteUrl填充下拉选择 22字段下拉多选框 23可视化组件绘图按钮
  24可视化字段与条件复合选择组件 25修改输出字段类型 26自定义级联选择器 27衍生变量
  -->
  <!--0数据源输入搜索下拉框-->
  <TipSearchSelect v-if="item.elementType==0 " :item="item" :index="index" :type="database" />
  <!--1文本框-->
  <TipInputText v-else-if="item.elementType == 1 " :type="text" :item="item" :index="index" />
  <!--2数值输入框-->
  <TipInputNumber v-else-if="item.elementType==2 " :item="item" :index="index" />
  <!--3单选框-->
  <TipSelectedSingle v-else-if="item.elementType==3 " :item="item" :index="index" />
  <!--4文本域-->
  <TipTextArea v-else-if="item.elementType==4" :item="item" :index="index" />
  <!--5表结构列表-->
  <TipDataGrid v-else-if="item.elementType==5" :item="item" :type="database" :index="index" />
  <!--6单选框-->
  <TipRadio v-else-if="item.elementType==6" :item="item" :index="index" />
  <!--7多选框-->
  <TipCheckBox v-else-if="item.elementType==7" :item="item" :index="index" />
  <!--8文本编辑器-pgsql-->
  <TipAceEditor v-else-if="item.elementType==8" :item="item" :index="index" :models="pgsql" />
  <!--9文本编辑器-r-->
  <TipAceEditor v-else-if="item.elementType==9" :item="item" :index="index" :models="r" />
  <!--10文本编辑器-python-->
  <TipAceEditor v-else-if="item.elementType==10" :item="item" :index="index" :models="python" />
  <!--11条件l列表-->
  <TipCondition v-else-if="item.elementType==11" :node-item="nodeItem" :item="item" :index="index" />
  <!--12字段下拉选择框-->
  <TipFilterSelectSingle v-else-if="item.elementType==12" :item="item" :index="index" />
  <!--13表结构列表（只读）-->
  <TipShowDataGrid
    v-else-if="item.elementType==13"
    :type="database"
    :item="item"
    :index="index"
  />
  <!--14输入列表展示-->
  <TipShowInputList
    v-else-if="item.elementType==14"
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--15 复选框组-->
  <TipCheckBoxGroup v-else-if="item.elementType==15" :item="item" :index="index" />
  <!--16HIVE数据源输入搜索下拉-->
  <TipSearchSelect v-else-if="item.elementType==16 " :item="item" :index="index" :type="hive" />
  <!--17HIVE表结构列表-->
  <TipDataGrid v-else-if="item.elementType==17" :item="item" :type="hive" :index="index" />
  <!--18添加字段文本输入框-->
  <TipAddFieldInput
    v-else-if="item.elementType==18"
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--19修改输出字段名称-->
  <TipUpdateFieldName
    v-else-if="item.elementType==19"
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--20密码框-->
  <TipInputText v-else-if="item.elementType==20 " :type="password" :item="item" :index="index" />
  <!--21通过remoteUrl填充下拉选择-->
  <TipFillSelectedByConnection
    v-else-if="item.elementType==21 "
    :item="item"
    :index="index"
  />
  <!--22字段下拉多选框-->
  <TipMultipleSelected
    v-else-if="item.elementType==22 "
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--23可视化组件绘图按钮-->
  <TipDrawingButton
    v-else-if="item.elementType==23 "
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--24可视化字段与条件复合选择组件-->
  <TipFieldConditionSelected
    v-else-if="item.elementType==24 "
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--25修改输出字段类型-->
  <TipUpdateFiledType
    v-else-if="item.elementType==25"
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--26自定义级联选择器-->
  <TipDatabaseCascader
    v-else-if="item.elementType==26"
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
  <!--27衍生变量-->
  <TipDerivedVariable
    v-else-if="item.elementType==27"
    :node-item="nodeItem"
    :item="item"
    :index="index"
  />
</template>
<script>
import TipInputText from './PropItem/TipInputText.vue'
import TipInputNumber from './PropItem/TipInputNumber.vue'
import TipSelectedSingle from './PropItem/TipSelectedSingle.vue'
import TipSpanContent from './PropItem/TipSpanContent.vue'
import TipSearchSelect from './PropItem/TipSearchInput.vue'
import TipDataGrid from './PropItem/TipDataGrid.vue'
import TipShowDataGrid from './PropItem/TipShowDataGrid.vue'
import TipTextArea from './PropItem/TipTextArea.vue'
import TipRadio from './PropItem/TipRadio.vue'
import TipCheckBox from './PropItem/TipCheckBox.vue'
import TipCheckBoxGroup from './PropItem/TipCheckBoxGroup.vue'
import TipAceEditor from './PropItem/TipAceEditor.vue'
import TipCondition from './PropItem/TipCondition.vue'
import TipFilterSelectSingle from './PropItem/TipFilterSelectSingle.vue'
import TipShowInputList from './PropItem/TipShowInputList.vue'
import TipAddFieldInput from './PropItem/TipAddFieldInput.vue'
import TipUpdateFieldName from './PropItem/TipUpdateFieldName.vue'
import TipFillSelectedByConnection from './PropItem/TipFillSelectedByConnection.vue'
import TipMultipleSelected from './PropItem/TipMultipleSelected.vue'
import TipDrawingButton from './PropItem/TipDrawingButton.vue'
import TipFieldConditionSelected from './PropItem/TipFieldConditionSelected.vue'
import TipUpdateFiledType from './PropItem/TipUpdateFiledType.vue'
import TipDatabaseCascader from './PropItem/TipDatabaseCascader.vue'
import TipDerivedVariable from './PropItem/TipDerivedVariable.vue'

export default {
  name: 'PropItem',
  components: {
    TipInputText,
    TipInputNumber,
    TipSelectedSingle,
    //      TipSpanContent,
    TipSearchSelect,
    TipDataGrid,
    TipShowDataGrid,
    TipTextArea,
    TipRadio,
    TipCheckBox,
    TipCheckBoxGroup,
    TipAceEditor,
    TipCondition,
    TipFilterSelectSingle,
    TipShowInputList,
    TipAddFieldInput,
    TipUpdateFieldName,
    TipFillSelectedByConnection,
    TipMultipleSelected,
    TipDrawingButton,
    TipFieldConditionSelected,
    TipUpdateFiledType,
    TipDatabaseCascader,
    TipDerivedVariable
  },
  props: ['item', 'index', 'nodeItem'],
  data: function() {
    return {
      pgsql: 'pgsql',
      r: 'r',
      python: 'python',
      database: 'database',
      hive: 'hive',
      text: 'text',
      password: 'password'
    }
  }
}
</script>
<style scoped>
  .hint_information {
    float: right;
    margin-top: -35px;
    margin-right: 5px;
    height: 13px;
    line-height: 13px;
  }
</style>
